﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Sokoban.ViewModel.Boxes;

namespace Sokoban.Model
{
    public class Map
    {
        public int rows, cols;
        //boxType [,]
        public AbstractBox[,] GridMatrix { get; set; }
        public string Name;
        //public
        public Map()
        {

        }
             
        public Map(string mapName, int rows, int cols)
        {
            GridMatrix = new AbstractBox[rows, cols];
            this.rows = rows;
            this.cols = cols;
            Name = mapName;
            for (int r = 0; r < rows; r++)
                for (int c = 0; c < cols; c++)
                    GridMatrix[r, c] = new Wall(r, c);
        }                
    }

    enum BoxType
    {       
        // enum?
        // 0 - Barrier
        // 1 - Empty
        // 2 - Box
        // 3 - Goal
        // 4 - Player
    }

    public static class MapHelper
    {
        public static Map GenerateMap(int x, int y)
        {
            // Todo: hardcode boxes into rows and colums
            // for testing purpose
            // x and y can be randomized

            return new Map();
        }
   

    }
}
